_m_a_r_k_e_r_p Returns a marker for a completed asynchronous command.
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
ggggllllPPPPoooollllllllAAAAssssyyyynnnnccccSSSSGGGGIIIIXXXX is part of the SSSSGGGGIIIIXXXX____aaaassssyyyynnnncccc extension. This extension
provides a framework within which particular sets of OpenGL commands can
become "asynchronous" via specific further OpenGL extensions. Currently
the SSSSGGGGIIIIXXXX____aaaassssyyyynnnncccc____ppppiiiixxxxeeeellll extension is the only such defined extension.
Asynchronous commands are commands that may complete out-of-order with
respect to other OpenGL commands. An asynchronous command samples the
OpenGL state vector when it is issued. The sampled state includes the
results from the complete execution of all synchronous (normal) commands
issued prior to the asynchronous command. However, the results of an
asynchronous command (state changes or framebuffer updates) are not
necessarily committed in order. An asynchronous command may commit its
results any time after the completion of all synchronous commands issued
prior to the asynchronous command. An implementation may choose to
execute asynchronous commands in parallel with subsequent commands or at
some convenient time in the future.
Implementations of asynchronous commands may also be non-blocking. For
example, a non-blocking query command returns control to the program
immediately rather than stalling the program until the results of the
query are available.
Note that this language allows any particular asynchronous command to
behave exactly as if it were not asynchronous, if the implementation
chooses.
ggggllllPPPPoooollllllllAAAAssssyyyynnnnccccSSSSGGGGIIIIXXXX returns 1 when an asynchronous command has completed; in
this case it writes the marker associated with the completed command into
the integer referred to by _m_a_r_k_e_r_p. If there are no pending asynchronous
commands, or if there are pending asynchronous commands but none have
completed, ggggllllPPPPoooollllllllAAAAssssyyyynnnnccccSSSSGGGGIIIIXXXX returns 0 immediately and does not modify the
integer referred to by _m_a_r_k_e_r_p.
Once OpenGL has reported the completion of an asynchronous command via
either ggggllllFFFFiiiinnnniiiisssshhhhAAAAssssyyyynnnnccccSSSSGGGGIIIIXXXX or ggggllllPPPPoooollllllllAAAAssssyyyynnnnccccSSSSGGGGIIIIXXXX, the completion status of the
command will not be reported again. If several commands have the same
marker associated with them, the completion status of each command will
be reported separately, although these reports will be indistinguishable.
The order in which asynchronous commands are reported is undefined.
A program may guarantee that all outstanding asynchronous commands have
completed by calling ggggllllFFFFiiiinnnniiiisssshhhh. A call to ggggllllFFFFiiiinnnniiiisssshhhh does not cause the
completion status of outstanding commands to be reported, so subsequent
calls to ggggllllFFFFiiiinnnniiiisssshhhhAAAAssssyyyynnnnccccSSSSGGGGIIIIXXXX or ggggllllPPPPoooollllllllAAAAssssyyyynnnnccccSSSSGGGGIIIIXXXX will report the status of
such commands.
EEEERRRRRRRROOOORRRRSSSS
GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____OOOOPPPPEEEERRRRAAAATTTTIIIIOOOONNNN is generated if ggggllllPPPPoooollllllllAAAAssssyyyynnnnccccSSSSGGGGIIIIXXXX is executed between
the execution of ggggllllBBBBeeeeggggiiiinnnn and the corresponding execution of ggggllllEEEEnnnndddd.